home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1997 May / PC Plus Super CD Issue 127 (May 1997).iso / delphi2 / delphite.exe / data.z / BRCSTORD.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-08-12  |  4.1 KB  |  152 lines

  1. unit BrCstOrd;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, DBTables, DB, DBCtrls, StdCtrls, ExtCtrls, Grids, DBGrids, Buttons;
  8.  
  9. type
  10.   TBrCustOrdForm = class(TForm)
  11.     CtrlsPanel: TPanel;
  12.     Navigator: TDBNavigator;
  13.     BtnPanel: TPanel;
  14.     EditBtn: TButton;
  15.     CloseBtn: TButton;
  16.     ActivateBtn: TSpeedButton;
  17.     DefineBtn: TSpeedButton;
  18.     CustPanel: TPanel;
  19.     CustGrid: TDBGrid;
  20.     OrdersPanel: TPanel;
  21.     OrdersGrid: TDBGrid;
  22.     Bevel1: TBevel;
  23.     procedure CustGridEnter(Sender: TObject);
  24.     procedure SetQuery(Sender: TObject);
  25.     procedure ActivateQuery(Sender: TObject);
  26.     procedure EditBtnClick(Sender: TObject);
  27.     procedure CloseBtnClick(Sender: TObject);
  28.     procedure OrdersGridEnter(Sender: TObject);
  29.     procedure FormShow(Sender: TObject);
  30.   private
  31.     FActiveSource: TDataSource;
  32.     FCustNo: Double;
  33.     FOrderNo: Double;
  34.     function GetCustNo: Double;
  35.     function GetOrderNo: Double;
  36.     procedure SetActiveSource(DataSource: TDataSource);
  37.     procedure SetCustNo(NewCustNo: Double);
  38.     procedure SetOrderNo(NewOrderNo: Double);
  39.     property ActiveSource: TDataSource read FActiveSource write SetActiveSource;
  40.   public
  41.     property CustNo: Double read GetCustNo write SetCustNo;
  42.     property OrderNo: Double read GetOrderNo write SetOrderNo;
  43.   end;
  44.  
  45. var
  46.   BrCustOrdForm: TBrCustOrdForm;
  47.  
  48. implementation
  49.  
  50. uses QryCust, EdCust, EdOrders, Main, DataMod;
  51.  
  52. {$R *.DFM}
  53.  
  54. { Retrieve from active customer table or query--whichever is active }
  55.  
  56. function TBrCustOrdForm.GetCustNo: Double;
  57. begin
  58.   Result := MastData.CustMasterSrc.Dataset.Fields[0].AsFloat;
  59. end;
  60.  
  61. procedure TBrCustOrdForm.SetCustNo(NewCustNo: Double);
  62. begin
  63.   MastData.CustMasterSrc.Dataset := MastData.Cust;
  64.   MastData.Cust.Locate('CustNo', NewCustNo, []);
  65. end;
  66.  
  67. function TBrCustOrdForm.GetOrderNo: Double;
  68. begin
  69.   Result := MastData.OrdByCustOrderNo.Value;
  70. end;
  71.  
  72. procedure TBrCustOrdForm.SetOrderNo(NewOrderNo: Double);
  73. begin
  74.   MastData.OrdByCust.Locate('OrderNo', NewOrderNo, []);
  75. end;
  76.  
  77. procedure TBrCustOrdForm.SetActiveSource(DataSource: TDataSource);
  78. begin
  79.   FActiveSource := DataSource;
  80.   Navigator.DataSource := FActiveSource;
  81. end;
  82.  
  83. procedure TBrCustOrdForm.CustGridEnter(Sender: TObject);
  84. begin
  85.   ActiveSource := MastData.CustMasterSrc;
  86.   CustGrid.Options := CustGrid.Options + [dgAlwaysShowSelection];
  87.   OrdersGrid.Options := OrdersGrid.Options - [dgAlwaysShowSelection];
  88. end;
  89.  
  90. procedure TBrCustOrdForm.OrdersGridEnter(Sender: TObject);
  91. begin
  92.   ActiveSource := MastData.OrdByCustSrc;
  93.   OrdersGrid.Options := OrdersGrid.Options + [dgAlwaysShowSelection];
  94.   CustGrid.Options := CustGrid.Options - [dgAlwaysShowSelection];
  95. end;
  96.  
  97. procedure TBrCustOrdForm.SetQuery(Sender: TObject);
  98. begin
  99.   with QueryCustDlg do
  100.   begin
  101.     MsgLab.Caption := 'Customers with LastInvoiceDate ranging:';
  102.     if FromDate = 0 then FromDate := EncodeDate(95, 01, 01);
  103.     if ToDate = 0 then ToDate := Now;
  104.     ShowModal;
  105.   end;
  106. end;
  107.  
  108. procedure TBrCustOrdForm.ActivateQuery(Sender: TObject);
  109. begin
  110.   if not ActivateBtn.Down then
  111.     MastData.CustMasterSrc.Dataset := MastData.Cust
  112.   else
  113.     try
  114.       MastData.CustQuery.Close;
  115.       MastData.CustQuery.Params[0].AsDatetime := QueryCustDlg.FromDate;
  116.       MastData.CustQuery.Params[1].AsDatetime := QueryCustDlg.ToDate;
  117.       MastData.CustQuery.Open;
  118.       MastData.CustMasterSrc.Dataset := MastData.CustQuery;
  119.     except
  120.       MastData.CustMasterSrc.Dataset := MastData.Cust;
  121.       ActivateBtn.Down := false;
  122.       ShowMessage('Invalid date range specified');
  123.     end;
  124. end;
  125.  
  126. procedure TBrCustOrdForm.EditBtnClick(Sender: TObject);
  127. var
  128.   F: TFloatField;
  129. begin
  130.   F := ActiveSource.Dataset.Fields[0] as TFloatField;
  131.   if ActiveSource = MastData.CustMasterSrc then
  132.     EdCustForm.Edit(F.Value)
  133.   else
  134.   begin
  135.     EdOrderForm.Edit(F.Value);
  136.     ActiveSource.Dataset.Refresh;
  137.   end;
  138. end;
  139.  
  140. procedure TBrCustOrdForm.CloseBtnClick(Sender: TObject);
  141. begin
  142.   Close;
  143. end;
  144.  
  145. procedure TBrCustOrdForm.FormShow(Sender: TObject);
  146. begin
  147.   MastData.Cust.Open;
  148.   MastData.Cust.First;
  149. end;
  150.  
  151. end.
  152.